Skip to content

Keep each plan clarification and its answer in the task record and Notes (CF-7, clarification half) - #312

Merged
BunsDev merged 3 commits into
mainfrom
cf7-clarify
Oct 19, 2026
Merged

BunsDev merged 3 commits into
mainfrom
cf7-clarify

Conversation

@BunsDev

@BunsDev BunsDev commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

The clarification half of CF-7 (#280): a plan clarification is asked and answered through CF-3's question card, and the turn's task record and Notes keep it.

What changes

  • taskRecord lists every question the CLI asked during the turn, from its question cards, with the answer as the card shows it. A secret answer reads "(hidden)".
  • An unanswered question reads "not answered" with why it closed: the agent withdrew it, the turn was stopped, or it ended first. An answer Modex could not confirm the CLI received says so. Both count as not settled.
  • Nothing is filled in that the card does not hold, and a turn with no questions has no Clarifications section.
  • docs/task-context.md describes clarifications. Codex asks through item/tool/requestUserInput; Claude Code 2.1.302 sends Modex no structured questions.

Tests, red first

  • test/task-context.test.ts: the clarification record failed first; the record had no clarifications.
  • e2e/plan-clarification.spec.ts (new) uses a scripted codex-cli 0.163.0 app-server. It reports a plan and asks a clarifying question on the card, then plans on from the answer.
    • The answer reaches Codex once.
    • Save to Notes records it with the secret hidden.
    • A second clarification, stopped unanswered, is saved as "not answered: the turn was stopped", with no answer filled in.
    • No file under MODEX_HOME holds the secret.
    • Against the record code without clarifications, it failed at ## Clarifications in the saved note.

Checks

On 5f0959d, rebased onto main d625eda (CF-6), macOS 26.7.1, Node v24.18.1, pnpm 10.34.5:

All commits are signed. docs/status.md adds CF-7's clarifications under "On main, unreleased" and removes them from "Still open".

Refs #280, #276. Tracker #273.

taskRecord lists every question the CLI asked during the turn, from its question cards, with the
answer as the card shows it: a secret one reads "(hidden)". An unanswered question reads "not
answered" with why it closed (the agent withdrew it, the turn was stopped, or it ended first), and
an answer Modex could not confirm the CLI received says so. Both count as not settled. Nothing is
filled in that the card does not hold, and a turn with no questions has no Clarifications section.

The unit test failed first: the record had no clarifications.

Refs #280

Coven-Harness: Claude Code / claude-opus-5-5
e2e/plan-clarification.spec.ts runs a scripted codex-cli 0.163.0 app-server that reports a plan,
asks a clarifying question through the question card, and plans on from the answer. The answer
reaches Codex once, Save to Notes records it with the secret hidden, and a second clarification
stopped unanswered is saved as "not answered: the turn was stopped" with no answer filled in. No
file under MODEX_HOME holds the secret.

Against the record code without clarifications it failed at "## Clarifications" in the saved note.

docs/task-context.md describes clarifications in the record.

Refs #280

Coven-Harness: Claude Code / claude-opus-5-5
Refs #280

Coven-Harness: Claude Code / claude-opus-5-5
@vercel

vercel Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
modex Ready Ready Preview Oct 19, 2026 12:46am UTC

Request Review

@github-code-quality

Copy link
Copy Markdown

Code coverage overview

Languages: TypeScript

TypeScript / code-coverage-agent

main d625eda cf7-clarify 5f0959d +/-
63% 63% 0%
View coverage of the 1 most impacted file.
File main d625eda cf7-clarify 5f0959d +/-
apps/desktop/sr...task-context.ts 98% 99% +1%

ℹ️ Calculations represent line coverage. Results may change as calculations are updated.

@BunsDev
BunsDev merged commit f4cd67f into main Oct 19, 2026
13 checks passed
@BunsDev
BunsDev deleted the cf7-clarify branch October 19, 2026 01:29
BunsDev added a commit that referenced this pull request Oct 19, 2026
CF-2 (#286), CF-3 (#293), CF-4's Markdown slice (#283), CF-6's request half (#308) and CF-7's
clarifications (#312) are on main, with their merge commits. The candidate note says the fixture
rows now run on main, and no candidate is pinned while the live-provider and human gates stay open.

Refs #281

Coven-Harness: Claude Code / claude-opus-5-5
BunsDev added a commit that referenced this pull request Oct 19, 2026
…nd patch-comparison slice

Coven-Harness: Claude Code / claude-opus-5-5
BunsDev added a commit that referenced this pull request Oct 19, 2026
Brings in #312 (CF-7 clarification half) so #310 is up to date with main.

Coven-Harness: Claude Code / claude-opus-5-5
BunsDev added a commit that referenced this pull request Oct 19, 2026
…nts at once, reconnect, a clarifying question (CF-8) (#313)

* Add the request variants to the fidelity path

Four cases in e2e/conversation-fidelity.spec.ts, through the real app:

- A native withdrawal: the Claude fixture takes its own request back (control_cancel_request).
  The card closes as withdrawn, no answer reaches the CLI, a late answer is refused, and the file
  is unchanged.
- The desktop and the phone answer at once, over the bridge and the companion's HTTPS. Exactly one
  is accepted, the CLI reads one decision, the card names who gave it, and the file matches the
  winner.
- With the journal on, a phone that loaded the open card reconnects after the desktop's decision.
  Its delta shows the card answered by the desktop and sent, its late answer is a 409, and every
  count stays at one.
- A clarifying question inside the path, from a codex-cli 0.163.0-shaped fixture: answered on its
  card, heard once, followed by a real edit and check, saved to Notes, and inert after a restart
  that re-runs nothing.

The fixture now counts every decision the CLI reads, so the earlier cases assert that too. The
golden path is marked slow: since #301 it also takes 18 reference captures and relaunches, and it
ran past 90 s on a Mac at load average 100.

These cases found the companion's 404 for threads started on the Mac, fixed in the CF-6 branch.

Refs #281

Coven-Harness: Claude Code / claude-opus-5-5

* Record the request variants in the acceptance receipt

The matrix rows for a clarifying question, a native withdrawal, simultaneous answers and a
reconnect after a decision move from open to verified with a fixture, with what each case asserts.
The defects list adds the companion's 404 for threads started on the Mac. The fidelity summary gains
rows for questions and approvals.

Refs #281

Coven-Harness: Claude Code / claude-opus-5-5

* Record CF-8's request variants in status

Refs #281

Coven-Harness: Claude Code / claude-opus-5-5

* Record the landed children in the acceptance receipt

CF-2 (#286), CF-3 (#293), CF-4's Markdown slice (#283), CF-6's request half (#308) and CF-7's
clarifications (#312) are on main, with their merge commits. The candidate note says the fixture
rows now run on main, and no candidate is pinned while the live-provider and human gates stay open.

Refs #281

Coven-Harness: Claude Code / claude-opus-5-5
BunsDev added a commit that referenced this pull request Oct 19, 2026
Brings in #312 (CF-7 clarification half) and #313 (CF-8 request variants).

Coven-Harness: Claude Code / claude-opus-5-5

This branch was successfully deployed

1 active deployment
Preview — 5f0959d8 Deployed Oct 19, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant